import { createRouter, createWebHistory } from 'vue-router'
import Home from '../views/Home.vue'

const routes = [
  {
    path: '/',
    name: 'Home',
    component: Home,
    meta: {
      title: '在线工具集 - 免费在线加密解密、编码转换、代码格式化工具',
      description: '免费在线工具集，提供MD5加密、Base64编码解码、URL编码、Unicode编码、时间戳转换、二维码生成、JSON格式化、XML格式化、HTML格式化、正则表达式验证、颜色值转换等实用工具。',
      keywords: '在线工具,加密解密,MD5加密,Base64编码,URL编码,Unicode编码,时间戳转换,二维码生成,JSON格式化,XML格式化,HTML格式化,正则表达式,颜色转换,免费工具'
    }
  },
  {
    path: '/encrypt',
    name: 'Encrypt',
    component: () => import('../views/Encrypt.vue'),
    meta: {
      title: '加密解密工具 - MD5加密、Base64编码解码、URL编码 | 在线工具集',
      description: '免费在线加密解密工具，支持MD5加密、Base64编码解码、URL编码解码，安全可靠，操作简单。',
      keywords: 'MD5加密,Base64编码,Base64解码,URL编码,URL解码,加密工具,解密工具,在线加密'
    }
  },
  {
    path: '/encode',
    name: 'Encode',
    component: () => import('../views/Encode.vue'),
    meta: {
      title: '编码转换工具 - Unicode编码、时间戳转换、二维码生成 | 在线工具集',
      description: '免费在线编码转换工具，支持Unicode编码、时间戳转换、UTF-8编码、二维码生成和解码。',
      keywords: 'Unicode编码,时间戳转换,二维码生成,二维码解码,UTF-8编码,编码转换,在线工具'
    }
  },
  {
    path: '/format',
    name: 'Format',
    component: () => import('../views/Format.vue'),
    meta: {
      title: '代码格式化工具 - JSON格式化、XML格式化、HTML格式化 | 在线工具集',
      description: '免费在线代码格式化工具，支持JSON格式化、XML格式化、HTML格式化，让代码更易读。',
      keywords: 'JSON格式化,XML格式化,HTML格式化,代码格式化,代码美化,在线工具'
    }
  },
  {
    path: '/other',
    name: 'Other',
    component: () => import('../views/Other.vue'),
    meta: {
      title: '其他工具 - 正则表达式验证、颜色值转换 | 在线工具集',
      description: '免费在线工具，提供正则表达式验证、颜色值转换等实用功能。',
      keywords: '正则表达式,正则验证,颜色转换,颜色值,HEX颜色,RGB颜色,在线工具'
    }
  }
]

const router = createRouter({
  history: createWebHistory(),
  routes
})

// 路由守卫 - 动态更新页面标题和meta信息
router.beforeEach((to, from, next) => {
  // 更新页面标题
  if (to.meta.title) {
    document.title = to.meta.title
  }
  
  // 更新meta描述
  if (to.meta.description) {
    const metaDescription = document.querySelector('meta[name="description"]')
    if (metaDescription) {
      metaDescription.setAttribute('content', to.meta.description)
    }
  }
  
  // 更新meta关键词
  if (to.meta.keywords) {
    const metaKeywords = document.querySelector('meta[name="keywords"]')
    if (metaKeywords) {
      metaKeywords.setAttribute('content', to.meta.keywords)
    }
  }
  
  next()
})

export default router 